約 2,142,390 件
https://w.atwiki.jp/hanyou8/pages/30.html
計算式 11/17のパッチに付属していたテキストをそのまま引用。誰か見やすくしてくれ ◆SLGモード◆ ◆RPGモード◆ 勢力・禁呪・武将・兵士・武器・防具・必殺・拠点・計算式 ◆SLGモード◆ ダメージ ={(攻-防)x10≧攻}x兵装備x士気x兵数x天候地形x状態x残量Hpx(武将vs武将の場合はx200%)x作戦(殲滅vs防衛のときは防衛側の与えるダメージ低下) 総ダメージ=武将の与えるダメージ+兵士の与えるダメージ 兵装備 ミスリルでx150%.ドラゴンでx225%。武将の攻撃時は無視 士気 {(150-攻撃対象士気)x2≧12}%。攻撃相手が武将の場合は無視 兵数 {兵数x2+34≦100}%。武将の攻撃時は無視 天候地形 ○+50%.◎+75%.×-50%。最大で-90%。乗算ではなく加算で計算。 武将の攻撃時は対象の天候地形のみ&○+33%.◎+50%.×-33%。攻撃相手が武将の場合は無視 *例1・雪の森にいる忍者(森○雪○)とエルフ(森◎雪×)が戦う場合、 忍者→エルフ+75%。エルフ→忍者-75% 武将→エルフ-17%。武将 →忍者-66% *例2・雨の森にいる兵士(森×雨×)とエルフ(森◎雨-)が戦う場合、 兵士→エルフ-90%。エルフ→兵士+175% 武将→エルフ-50%。武将 →兵士+66% 状態 攻撃側が攻撃低下中でダメージx50%。攻撃対象が防御低下中でダメージx150。 両者とも低下している場合は変動なし 残量Hp 瀕死(Hpが赤色)状態でダメージx50%。兵士の攻撃時は無視 兵Hp=(表示されている兵士のHp/10+20)x兵数 攻 =(兵攻+7)x(統率+7).武将の場合(攻x4+52) 防 =(兵防+3)x(統率+7).武将の場合(防x2+36) ・兵装備でダメージが凄まじく増えているような気がするが、実際のダメージの半分は武将が与えているようなものである事に注意 ・士気は兵士が受けるダメージにしか影響しない。フルポテンシャル等で士気を101以上に上げると最大で1/8程度までダメージを減らせる ・天候地形は最大でダメージが1/10(武将の攻撃に対しては1/6)に減る ・武将は自兵士が全滅するまで攻撃されない ◆RPGモード◆ ダメージ={攻-(防x凍結状態なら1/2)≧攻/100}x(攻撃力アップでx2.ダウンでx2/3)x(防御力アップで1/2.ダウンでx4/3) 攻=(攻+36)x(攻+36) 防=(防x50)+1200 ・敏捷5は敏捷1の1.5倍速い。敏捷9は敏捷1の2倍速い ・難易度×3が想定しているステータスなので、難易度★★★なら攻撃・直防・魔防が9以上を目安にするといい ・でもポーションやパワーアップ・ガードアップを惜しまなければ多少弱くてもなんとかなる
https://w.atwiki.jp/papota/pages/20.html
総合攻撃力決定式は何度も計算式が変更されているため、 今後も変更される可能性がある。 総合攻撃力計算式ver.2009_01_18_papota (最新バージョン)1つの魔法の火力を最大にする式(リフィスが60のとき) ver.2009_01_11_papota まで ver.2008_10_22_papota まで よくわからない人に簡単な解説 (ver.2009_01_18_papota)攻撃力の基本的な考え方について 魔力安定度と攻撃力について ダメージ計算式 総合攻撃力計算式 凡例魔法石の攻撃力=初期値+赤の魔力使用分 乱数部分は0%~100%の値をとる 攻撃力という表記についてシールド=攻撃力を防御力に置換 スパーク=攻撃力を麻痺力に置換、かつ、魔力強化アイテムの数*5になっている ヒール=攻撃力を(回復力+補助回復力)/2に置換 ver.2009_01_18_papota (最新バージョン) 魔導力 =(ティルの魔導力)+(魔導ルビー)+(魔導防具)+(魔力アップ琥珀) 魔法石力 =(魔法石の攻撃力×(100+魔力安定度)%/2)+(属性火力アップ琥珀) ランダム力=(魔法石の攻撃力×(100-魔力安定度)%/2)+(属性ルビー) 倍率 =(属性スキル)+(魔導防具) 固定火力=(基礎力+魔法石力)×(倍率)+(強化アイテム) 総合火力=(固定火力)+(ランダム力) 最終火力=(総合火力)×(チャージ倍率) これまでのバージョンとの最も大きな違いは、属性ルビー効果の変更。 属性ルビーは従来「固定」攻撃力として扱われていたが、 今回のバージョンアップにより、「ランダム」攻撃力扱いとなった。 その代わり、チャージ倍率の影響を受けるように変更された。 また、ティル自身の魔導力にも属性スキルの倍率がかかるようになった。 そのため、昔のように「ある程度魔法石の攻撃力が上がったらスキルの方がよい」というわけではなく 「バランスよく魔導力とスキル倍率に振り分ける」ことが必要になった。 1つの魔法の火力を最大にする式(リフィスが60のとき) (魔導力にふるポイント数)=(50A)-(B/6) A=(魔導力とスキルに振る全ポイント数/100)+(防具による補強倍率) B=(ルビーによる魔導力)+(防具による魔導力)+(琥珀による魔導力) +(魔法石の攻撃力×0.8)+(琥珀による属性攻撃力) (Aの例)全ポイント数=500、補強倍率=150%のとき、A=(5.00)+(1.50)=6.50 ※リフィスが60以外のとき、(魔法石の攻撃力×0.8)の下線部が、×(100+リフィス)/200)になる。 ver.2009_01_11_papota まで (総合攻撃力)= 魔導力 (ティル自身の魔導力+魔導防具による魔導力上昇分 +魔導ルビーの数*10+属性ルビーの数*5+強化アイテムの数*10) +{魔法石の攻撃力*(100+安定度)%/2}*魔導スキル% +乱数 {魔法石の攻撃力*(100-安定度)%/2}*魔導スキル% 例1 魔法石の攻撃力100、ティル自身の魔導力200、強化アイテム30個、 光の魔導スキル400%、安定度0%のフォトン 総合攻撃力 = 100*4 + 200 + 30*10 + 100*0.5 + 乱数(100*0.5*4) =750~950 例2 魔法石の攻撃力400、ティル自身の魔導力300、強化アイテム20個、 光の魔導スキル100%、安定度0%のフォトン 総合攻撃力 = 400*1 + 300 + 20*10 + 400*0.5 + 乱数(400*0.5*1) =1100~1300 ver.2008_10_22_papota まで (総合攻撃力)= 魔導力 (ティル自身の魔導力+魔導防具による魔導力上昇分+魔導ルビーの数*10) +{魔法石の攻撃力*(100+安定度)%/2+強化アイテムの数*10}*魔導スキル% +乱数 魔法石の攻撃力*(100-安定度)%/2 +乱数 属性ルビーの数*5 例1 魔法石の攻撃力100、ティル自身の魔導力200、強化アイテム30個、 光の魔導スキル400%、安定度0%のフォトン 総合攻撃力 = (100 + 30*10)*4 + 200 + 100*0.5 + 乱数(100*0.5) =1850~1900 例2 魔法石の攻撃力400、ティル自身の魔導力300、強化アイテム20個、 光の魔導スキル100%、安定度0%のフォトン 総合攻撃力 = (400 + 20*10)*1 + 300 + 400*0.5 + 乱数(400*0.5) =1100~1300 よくわからない人に簡単な解説 (ver.2009_01_18_papota) 攻撃力の基本的な考え方について パポタにおける攻撃力には、「固定火力」と「ランダム力」の二種類がある。 固定火力とは、常に決まった量の威力を発揮する部分のことで、 主にティルの魔導力や魔導ルビー、魔導防具の効果などによって上昇する。 ランダム力とは、その何%が実際の攻撃力に加算されるかランダムに決まる部分のことで、 主に属性ルビーによって上昇する。 赤い魔力や属性スキルは固定火力とランダム力の両方が上昇する。 実際の攻撃力(総合火力)は、この二つを攻撃ごとに足し合わせることで決定される。 積を親子、和を兄弟として、おおむね以下のように表現することができる。 (最終火力) チャージ倍率 │ │(固定火力) ├倍率=属性スキル+魔導防具 │ │ │ │(魔導力) │ ├ティルの魔導力 │ ├魔導ルビー │ ├魔導防具 │ ├魔力アップ琥珀 │ │ │ │(魔法石力) │ ├魔法石の攻撃力×(100+魔力安定度)%/2 │ └属性火力アップ琥珀 │ ├強化アイテム │ │(ランダム力) └乱数 ├魔法石の攻撃力×(100-魔力安定度)%/2 └属性ルビー つまり、固定火力を100増やせば総合火力は必ず100増えるが、 ランダム力を100上げても、乱数がもし0%になると総合火力は全く増えない。 もちろん乱数がたまたま100%になれば、その時の総合火力は100きっちり上昇する。 まとめると、攻撃力には安定している部分と不安定な部分があり、 不安定な部分は一発ごとにどれだけ効果が出るか変わる、と理解しておけば間違いない。 攻撃力の安定部分が1000、不安定部分が100なら総合攻撃力は1000~1100の間でブレる。 魔力安定度と攻撃力について 赤の魔力による魔法石自体の攻撃力の上昇は、魔力安定度の影響を強く受ける。 魔力安定度とは簡単に言うと「魔法石自体の攻撃力の半分のさらに何%を固定火力に変換するか」である。 たとえば魔法石の攻撃力400、魔力安定度60%の場合、 まず半分の200が固定攻撃力となり、残りの半分の200が乱数攻撃力となる。 乱数攻撃力200のうち60%の120を固定攻撃力に変換して、最終的に320が固定攻撃力・80が乱数攻撃力となる。 攻撃力400のうちの、320は固定火力として必ずその分ダメージが増えるが、 残りの80はそのうちのどれほどが実際にダメージに反映されるのかはわからない。 要するに、魔力安定度が高ければ高いほどランダム力(不安定な部分)は減り、 そのぶん固定火力(安定している部分)が増してゆく。 最大火力は同じでも、安定度が高ければ、低いダメージが出なくなる。 一方、属性ルビーはランダム力に含まれるが魔力安定度とは無関係のため、物量で期待値を稼ぐしかない。 魔導防具・琥珀・強化アイテムは乱数や魔力安定度の影響を受けず、攻撃力を単純に底上げする。 これらの入手に難があり、赤の魔力に比較的依存している魔法石はリフィスの重要性が高い。 ダメージ計算式 有効なダメージを与えるには、まず防御力を突破すること。 属性はその後にかかるので、相性のよさだけで格上の相手をとることはできない。 (与えるダメージ)= (魔法威力-敵の防御力)*敵の属性ダメージ倍率 (クリティカル時与えるダメージ)= 魔法威力*敵の属性ダメージ倍率 (ストーンで与えるダメージ)= {魔法威力-(敵の防御力/2)}*敵の属性ダメージ倍率 (ポイズの追加毒で与えるダメージ)= ポイズの持続力*追加毒倍率 ……を、追加毒回数分。 チャージ 追加毒倍率 追加毒回数 0~99 1.0倍 1回 100~199 1.5倍 1回 200~299 2.0倍 2回 300~399 2.5倍 2回 400~499 3.0倍 3回 500~599 3.5倍 3回 600~999 4.0倍 4回 (踏みつけダメージ)= 魔導力+rand(ティルのHP/4, ティルのHP/2)*重力補正 ※rand(a, b)はa~bの値の範囲内でランダムな値をとることを表す。 ※重力補正:ずっしり琥珀による「重力2倍」効果がある装備をしている場合は2倍、それ以外は1倍(補正なし)。
https://w.atwiki.jp/twsaihuri/pages/24.html
※基本的に割る度に小数点以下切り捨て ※補助は何もなしで 0 必要P 初期必要POINT +[(ステ値 × 5 )+ LV ]÷ 125 命中P 攻撃の依存ステータスによって命中Pの計算式は変わります 以下は依存ステータス毎の計算式です ※ストーンニードルは物理のINT 2 物理 STAB = X + 装備X + スキル命中 + S ÷ 10 - S ÷ 100 + 補助 HACK = X + 装備X + スキル命中 + H × 6 ÷ 100 - H ÷ 100 + 補助 INT 2 = X + 装備X + スキル命中 - I ÷ 100 + 補助 STAB + HACK = X + 装備X + スキル命中 - (S + H) ÷ 200 + 補助 STAB + INT = X + 装備X + スキル命中 - (S + I) ÷ 250 + 補助 魔法 INT = X + 装備X + スキル命中 - I ÷ 100 + 補助 MR = X + 装備X + スキル命中 - M ÷ 100 + 補助 HACK + INT = X + 装備X + スキル命中 - (H + I) ÷ 250 + 補助 STAB + HACK + INT = X + 装備X + スキル命中 - (S + H + I) ÷ 305 + 補助 回避P 受ける攻撃が物理・物魔複合・魔法によって回避Pは変わります ※INT 2 依存は物理攻撃扱い 物理 = (A + 装備A) × 6 ÷ 5 + ((S - H) ÷ 100 + F × 2 + 装備Q) ÷ 7 魔法 = (A + 装備A) × 6 ÷ 5 + (I + M × 2 + 装備Q) ÷ 7 物魔 = 調査中 命中率 命中P-回避P[%] 命中率下限 15% 命中率上限 100% バフ ペット集中 命中P + 5 + (受け手回避P + 10) ÷ 21 ※新仕様では単に+15という情報あり 赤い月の盟約 命中P + 10 的中剣Lv5(ペット集中重複不可) 命中P + 23 + 受け手回避P ÷ 5 的中剣Lv7(ペット集中重複不可) 命中P + 30 + 受け手回避P ÷ 4(未検証) ※新仕様では単に+40という情報あり シルフウィンドLv5? 回避P + 30 気合 ステA + 20 = 回避P + 24 術強化 命中P + 5 シルフアーマーLv5 回避P + 15 ファイナルフォーカスLv5(ペット集中重複不可) 命中P + 23 + 受け手回避P ÷ 5 シャドームービングLv5 回避Pの上昇はなし ソウルゲート オリジナルステA × 105 ÷ 100 アンホーリーグレース 回避Pの上昇はなし カースシールド 命中P + 10 回避P + 10 エレクトリックバースト 命中P + 5 デバフ 感電 攻め手命中P = 0.7 × (攻め手命中P + 12) - 12 暗黒 回避P - 不明 挑発Lv5 命中P - 0.1 × (攻め手命中P + 24) 回避P - 不明 ターゲットLv5 受け手ステA -10 = 回避P - 12 陣消し必要ディレイ 前ディレイ(物理) (ステS + ステX + 装備Q) × 3 + ステH 武器ディレイ[%] × 15 - 15000 ÷ スキル前ディレイ[ms] ÷ (1 - 補助) ステS + ステX + 装備Q + ステH ÷ 3 武器ディレイ[%] × 5 - 5000 ÷ スキル前ディレイ[ms] ÷ (1 - 補助) 前ディレイ(魔法) ステM + 装備M 武器ディレイ[%] × 5 - 5000 ÷ スキル前ディレイ[ms] ÷ (1 - 補助) 後ディレイ ステA + 装備Q 武器ディレイ[%] × 5 - 5000 ÷ スキル後ディレイ[ms] ÷ (1 - 補助) ペット速攻 補助に + 0.1 ラグランジュ神速剣(ペット速攻重複不可) 補助に + 0.5 バーサーク(重複については不明) 補助に + 0.2 解放のルーン(重複については不明) 補助に + Lv ÷ 3 × 0.2 オーバードライブLv5 武器ディレイに (1 - 35)倍 その他 バリレジLv5カット率 カット率 = 25 + 0.03 × ステM + 0.07 × 装備M(上限は70%だが仁王立ち・保護のルーンは含まれない) ↑転載元:れもねーど様:http //mirsise.blog.fc2.com/blog-entry-229.html マナウォールカット率 カット率 = 5 + スキルLv × 10 + ステI × 0.1(上限は99%)
https://w.atwiki.jp/miraclequest/pages/46.html
■各種計算式 社交場で見つけた計算式。一応頭に入っていると便利、かも。 ■各種計算式基本攻撃値 武器装備時の攻撃力の計算式 武器によってパラメータ補正とは 防御力の計算式 職業毎の係数とは 魔法威力計算式 コメント更新履歴 基本攻撃値 レベル × 職業毎の係数 ex)戦士Lv60の場合 60 × 8 = 480 武器装備時の攻撃力の計算式 基本攻撃値 + 武器の攻撃力 + 武器によってパラメータ補正 ex)戦士Lv60(腕力57)、生物兵器(攻165)装備の場合 480 + 165 + 11 =656 武器によってパラメータ補正とは 以下の武器を装備した場合、該当パラメータの5分の1(端数切り捨て)が攻撃力にプラスされます。 例えば腕力が低く、魔力が高い魔法使いの場合、生物兵器よりも竜の杖を装備したほうが攻撃力が上がるのです。 市場販売orクエストで手に入る武器 武器名 基本攻撃力 該当パラメータ 生物兵器 165 腕力 竜の杖 160 魔力 炎の剣 220 腕力 ホーリーランス 260 腕力 真弓さん 100 器用 ハシゴ者 125 器用 魔剣デルフィン 125 腕力 未楽堂の武器 インフィニティ 190 腕力 デスサイス 190 腕力 正宗 200 敏捷 七支刀 200 根性 村正 210 魔力 虎鉄 210 器用 百科事典 45 魔力 Eyeホーン 80 敏捷 斬星刀 130 腕力 ライトセイヴァー 135 腕力 音響兵器レスポ 165 敏捷 防御力の計算式 レベル × 職業毎の係数 + 防具の防御力 ex)戦士Lv60 山(防200)装備の場合 60 × 8 + 200 = 680 職業毎の係数とは 戦士…8 魔法使い…3 盗賊…4 僧侶…6 聖戦士…8 軽業士…6 忍者…4 導師…5 大魔導士…6 サムライ…13 召喚士…9 魔法威力計算式 与ダメ={a*(100+魔力)*(半減判定)}±R(%) ※a:特技係数 ※R:ランダマイズ(±20%) 例)とくぎ=(特技係数) メサ・ドカ=(1.2) A.Fusion=(2.5) 例)AtomFusionの場合 魔力|与ダメージ 50 | 375± 75 100| 500±100 200| 750±150 300|1000±200 コメント 名前 コメント 過去ログはこちら→コメント過去ログ 更新履歴 2011-04-22 11 32 15 (Fri);
https://w.atwiki.jp/debutvselder/pages/29.html
発動率計算式 発動率=(100-効果数値※1+消費制約※2)×(1+FS×0.1)+付属効果+調整 効果数値=効果値×範囲倍率×時間倍率×制限制約※2×カウンター倍率※3 カウンター倍率=カウンター条件×カウンター対象×待受範囲×待受時間 ×待受回数×タイミング ※1.効果が複数ある場合、それぞれの効果数値を足したものを基本式に入れてください ※2.消費制約が複数ある場合は足し合わせ、制限制約同士は掛け合わせます ※3.スタイルがカウンターでは無い場合、カウンター倍率は1倍になります 発動率で端数が出た場合は四捨五入します 説明 制約取得上限:消費制約を1つと制限制約を3つまで組み込むことが出来ます 消費制約、制限制約:制約一覧を参照してください 効果値:効果一覧を参照してください 範囲倍率、時間倍率:効果対象・時間一覧を参照してください カウンターの各要素:カウンターを参照してください FS(フリースキル):ステータスのFS数値です 調整:その他、GKによる調整数値です数値以上に強力だったり、逆に弱かったりする能力や、基本ルールを覆す内容の能力などに調整が入ることがあります 他にもさまざまな状況で調整されることがあります
https://w.atwiki.jp/charamakedg/pages/20.html
発動率計算式 発動率=(100-効果数値※1+消費制約※2)×(1+FS×0.1)+付属効果+調整 効果数値=効果値×範囲倍率×時間倍率×制限制約※2×カウンター倍率※3 カウンター倍率=カウンター条件×カウンター対象×待受範囲×待受時間 ×待受回数×タイミング ※1.効果が複数ある場合、それぞれの効果数値を足したものを基本式に入れてください ※2.消費制約が複数ある場合は足し合わせ、制限制約同士は掛け合わせます ※3.スタイルがカウンターでは無い場合、カウンター倍率は1倍になります 発動率で端数が出た場合は四捨五入します 説明 制約取得上限:消費制約を1つと制限制約を3つまで組み込むことが出来ます 消費制約、制限制約:制約を参照してください 効果値:効果を参照してください 範囲倍率、時間倍率:範囲・対象・時間を参照してください カウンターの各要素:カウンターを参照してください FS(フリースキル):ステータスのFS数値です 調整:その他、GKによる調整数値です数値以上に強力だったり、逆に弱かったりする能力や、基本ルールを覆す内容の能力などに調整が入ることがあります 他にもさまざまな状況で調整されることがあります
https://w.atwiki.jp/dng9th/pages/32.html
発動率計算式 発動率=(100-効果数値※1+消費制約※2)×(1+FS×0.1)+付属効果+調整 効果数値=効果値×対象倍率×時間倍率×非消費制約※2×カウンター倍率※3 カウンター倍率=カウンター条件×カウンター対象×待受範囲×待受時間 ×待受回数×タイミング ※1.効果が複数ある場合、それぞれの効果数値を足したものを基本式に入れてください ※2.消費制約が複数ある場合は足し合わせ、非消費制約同士は掛け合わせます ※3.スタイルがカウンターでは無い場合、カウンター倍率は1倍になります 発動率で端数が出た場合は四捨五入します 説明 制約取得上限:消費制約を1つと非消費制約を3つまで組み込むことが出来ます 消費制約、非消費制約:制約を参照してください 効果値:効果を参照してください 対象倍率、時間倍率:対象、時間を参照してください カウンターの各要素:カウンターを参照してください FS(フリースキル):ステータスのFS数値です 調整:その他、GKによる調整数値です数値以上に強力だったり、逆に弱かったりする能力や、基本ルールを覆す内容の能力などに調整が入ることがあります 他にもさまざまな状況で調整されることがあります
https://w.atwiki.jp/basicd/pages/116.html
FU2・発動率計算式 発動率=(100-効果数値※1+消費制約※2)×(1+FS×0.1)+付属効果+調整 効果数値=効果値×範囲倍率×時間倍率×制限制約※2×カウンター倍率※3 カウンター倍率=カウンター条件×カウンター対象×待受範囲×待受時間 ×待受回数×タイミング ※1.効果が複数ある場合、それぞれの効果数値を足したものを基本式に入れてください ※2.消費制約が複数ある場合は足し合わせ、制限制約同士は掛け合わせます ※3.スタイルがカウンターでは無い場合、カウンター倍率は1倍になります 発動率で端数が出た場合は四捨五入します 説明 制約取得上限:消費制約を1つと制限制約を3つまで組み込むことが出来ます 消費制約、制限制約:制約を参照してください 効果値:効果を参照してください 範囲倍率、時間倍率:範囲・対象・時間を参照してください カウンターの各要素:カウンターを参照してください FS(フリースキル):ステータスのFS数値です 調整:その他、GKによる調整数値です数値以上に強力だったり、逆に弱かったりする能力や、基本ルールを覆す内容の能力などに調整が入ることがあります 他にもさまざまな状況で調整されることがあります
https://w.atwiki.jp/srpg_arekore/pages/18.html
計算式 Ver1.120時点でのsingleton-calculatorの内容。 この辺り、公式でも解説はしているのですがいかんせんざっくりしすぎているので…… 書き換え方はこちらを参照。 随時更新中。 計算式AbilityCalculatorgetPower getHit getAvoid getCritical getCriticalAvoid getAgility DamageCalculatorcalculateDamage HitCalculator CriticalCalculator CalculatorcalculateRoundCount calculateRecoveryItemPlus calculateSellPrice SupportCalculatorcreateTotalStatus CompatibleCalculator ExperienceCalculator_getExperienceFactor _getNoDamageExperience _getVictoryExperience _getNormalValue _getExperience ExperienceControl ParameterControl SymbolCalculator AbilityCalculator ユニットの戦闘に関わる数値の計算を行う。 getPower ユニットの攻撃力を計算する。 ユニットの力か魔力に武器攻撃力を追加するという内容。 変更例 AbilityCalculator.getPower = function(unit, weapon) { var pow; if (weapon.custom.waza) { if (Miscellaneous.isPhysicsBattle(weapon)) { // 物理攻撃または投射攻撃 pow = RealBonus.getStr(unit); } else { // 魔法攻撃 pow = RealBonus.getMag(unit); } } else { // 技の武器 pow = RealBonus.getSki(unit); } // 武器の威力 + (力 or 魔力 or 技) return pow + weapon.getPow(); }; カスパラ「waza」がtrueの武器を装備中の場合は(力or魔力)の代わりに技を加算する。 getHit ユニットの命中率を計算する。 武器の命中率 + (ユニットの技 * 3)。 return(そこで処理を終了させて呼び出し元の処理に数値を返す)の中で計算している。 これをどうするか。 変更例1 AbilityCalculator.getHit = function(unit, weapon) { // 武器の命中率 + (技 * 3) + 幸運 return weapon.getHit() + (RealBonus.getSki(unit) * 3) + RealBonus.getLuk(unit); }; デフォルトの計算式にユニットの幸運の加算させたもの。 変更例2 AbilityCalculator.getHit = function(unit, weapon) { var hit; // 武器の命中率 hit += weapon.getHit(); // ユニットの技*3 hit += RealBonus.getSki(unit) * 3; // ユニットの幸運 hit += RealBonus.getLuk(unit); return hit; }; 例1の計算式を変数hitを宣言(var)した上でhitに計算した値をまとめていく方法。returnの中で計算を済ませることもできるが、複雑な計算の場合は見た目が非常に散らかってしまい、後から確認する時に大変な思いをすることになるだろう。 getAvoid ユニットの回避率を計算する。 引数(functionの中のパラメータ)にユニットのクラスが存在しないため、 この処理の中でクラスを呼び出しているのがポイント。 変更例1 AbilityCalculator.getAvoid = function(unit) { var avoid, terrain; var cls = unit.getClass(); // 回避は、(速さ * 2) avoid = RealBonus.getSpd(unit) * 2; // クラスの回避率 if (typeof cls.custom.kaihi === number ) avoid += cls.custom.kaihi; } // クラスタイプが地形ボーナスを考慮する場合は、「地形効果」の回避率を加算する if (cls.getClassType().isTerrainBonusEnabled()) { terrain = PosChecker.getTerrainFromPos(unit.getMapX(), unit.getMapY()); if (terrain !== null) { avoid += terrain.getAvoid(); } } return avoid; }; クラス(cls)のカスパラ「kaihi」に数値が設定されている場合はkaihiの数値分回避率が上昇する。 変更例2 AbilityCalculator.getAvoid = function(unit) { var avoid, terrain; var cls = unit.getClass(); var weapon = ItemControl.getEquippedWeapon(unit); if (weapon === null) { // 武器を装備していない場合の回避は、(速さ * 2) avoid = RealBonus.getSpd(unit) * 2; } else { // 武器を装備している場合の回避は、(敏捷 * 2) avoid = AbilityCalculator.getAgility(unit, weapon) * 2; } // クラスタイプが地形ボーナスを考慮する場合は、「地形効果」の回避率を加算する if (cls.getClassType().isTerrainBonusEnabled()) { terrain = PosChecker.getTerrainFromPos(unit.getMapX(), unit.getMapY()); if (terrain !== null) { avoid += terrain.getAvoid(); } } return avoid; }; 武器を所持している場合は敏捷(つまり武器の重さによる減算が発生した後の数値)を回避率の計算に使う。ここで気をつけたいのが「攻撃力」「命中率」「必殺率」は武器を所持していない状態(つまり攻撃できない状態)ならそれらの計算に入ることはないが、「回避率」と「必殺回避率」と「敏捷」の計算は武器を持っていなくても行われるということ。つまりこれらの計算時に武器を参照する場合は武器を所持しているかどうかをチェックする必要がある。敏捷はデフォルトで武器を所持していない場合の分岐を用意しているが、回避率と必殺回避率の処理で武器を扱う際にこのチェックを怠ると、僧侶などの武器を持たない非戦闘ユニットのステータスを開いただけでエラーを起こすようになるので注意。 getCritical ユニットの必殺率を計算する。 変更例 AbilityCalculator.getCritical = function(unit, weapon) { var crt; var cls = unit.getClass(); // 技 crt += RealBonus.getSki(unit); // 武器のクリティカル率 crt += weapon.getCritical(); // クラスのクリティカル率 crt += cls.custom.hissatu; return crt; }; クラス(cls)のカスパラ「hissatu」に数値が設定されている場合はhissatuの数値分必殺率が上昇する。 getCriticalAvoid ユニットの必殺回避率を計算する。 変更例 AbilityCalculator.getCriticalAvoid = function(unit) { // (幸運/2)がクリティカル回避率 return Math.floor( RealBonus.getLuk(unit) / 2 ); }; 幸運の半分の値が必殺回避率になる。Javascriptで除算を行う場合はMath.○○を用いて小数点以下を丸めて整数にする作業が必須。うっかり小数点のまま処理を進めたりすると数字が表示されなくなったりフリーズを引き起こす要因になる。SRPG Studioでは基本的にMath.floorを使う。 Math.round(丸めたい数値) 四捨五入 Math.ceil(丸めたい数値) 切り上げ Math.floor(丸めたい数値) 切り捨て getAgility ユニットの敏捷(戦闘時の素早さ)を計算する。 これまでと比べると複雑な分岐を行っている。 変更例 AbilityCalculator.getAgility = function(unit, weapon) { var agi, value, param; var spd = RealBonus.getSpd(unit); // 通常、敏捷は速さと同一 agi = spd; // 武器が指定されてない場合、または重さを考慮しない場合は、敏捷は変わらない if (weapon === null || !DataConfig.isItemWeightDisplayable()) { return agi; } // 体格が有効な場合は体格で判定し、そうでない場合は力(魔力)で判定する if (DataConfig.isBuildDisplayable()) { param = ParamBonus.getBld(unit); param += Math.floor(ParamBonus.getStr(unit)/2); } else { param = ParamBonus.getStr(unit); } // 重さ - パラメータ value = weapon.getWeight() - param; if (value 0) { // パラメータが重さより低い場合は、その差分だけ敏捷を下げる agi -= value; } return agi; }; 魔法武器なら魔力で武器の重さを相殺するところを魔法武器でも力で相殺するように固定化している。体格が有効になっている場合は(体格+力の半分)で相殺を行う。 DamageCalculator 実際の戦闘におけるダメージ計算。 calculateDamage クリティカル時の処理を行う部分。 変更例1 DamageCalculator.calculateDamage = function(active, passive, weapon, isCritical, activeTotalStatus, passiveTotalStatus, trueHitValue) { var pow, def, damage; var crtdamage = 0; if (this.isHpMinimum(active, passive, weapon, isCritical, trueHitValue)) { return -1; } pow = this.calculateAttackPower(active, passive, weapon, isCritical, activeTotalStatus, trueHitValue); def = this.calculateDefense(active, passive, weapon, isCritical, passiveTotalStatus, trueHitValue); damage = pow - def; if (this.isHalveAttack(active, passive, weapon, isCritical, trueHitValue)) { if (!this.isHalveAttackBreak(active, passive, weapon, isCritical, trueHitValue)) { damage = Math.floor(damage / 2); } } if (this.isCritical(active, passive, weapon, isCritical, trueHitValue)) { if (SkillControl.getBattleSkill(active, passive, SkillType.CRITICAL)) { crtdamage = 1; } damage = Math.floor(damage * (this.getCriticalFactor() + crtdamage)); } return this.validValue(active, passive, weapon, damage); }; 「クリティカル可能」スキルを所持しているユニットはクリティカル時のダメージ倍率が+100%される。DamageCalculator.getCriticalFactor()はツール側で設定されたクリティカル時のダメージ倍率を取得する関数。 変更例2 DamageCalculator.calculateDamage = function(active, passive, weapon, isCritical, activeTotalStatus, passiveTotalStatus, trueHitValue) { var pow, def, damage; var crtdamage = Math.floor(Math.random() * 15) + 5; if (this.isHpMinimum(active, passive, weapon, isCritical, trueHitValue)) { return -1; } pow = this.calculateAttackPower(active, passive, weapon, isCritical, activeTotalStatus, trueHitValue); def = this.calculateDefense(active, passive, weapon, isCritical, passiveTotalStatus, trueHitValue); damage = pow - def; if (this.isHalveAttack(active, passive, weapon, isCritical, trueHitValue)) { if (!this.isHalveAttackBreak(active, passive, weapon, isCritical, trueHitValue)) { damage = Math.floor(damage / 2); } } if (this.isCritical(active, passive, weapon, isCritical, trueHitValue)) { if (SkillControl.getBattleSkill(active, passive, SkillType.CRITICAL)) { crtdamage = 5; } damage += crtdamage; } return this.validValue(active, passive, weapon, damage); }; クリティカル時のダメージの計算が「ダメージ×3」から「ダメージ+5~20の乱数」に変わる。 「クリティカル可能」スキルを所持しているユニットはクリティカル時のダメージが更に+5される。 ツール側のクリティカル時のダメージ倍率の設定は使用されなくなる。 HitCalculator 実際の戦闘における攻撃命中判定処理。 CriticalCalculator 実際の戦闘におけるクリティカル判定処理。 Calculator 戦闘関係、アイテム関係などその他諸々の計算。 calculateRoundCount 再攻撃可能かどうか判定する。 変更例 Calculator.calculateRoundCount = function(active, passive, weapon) { var activeAgi; var passiveAgi; var value; if (!this.isRoundAttackAllowed(active, passive)) { return 1; } activeAgi = AbilityCalculator.getAgility(active, weapon); passiveAgi = AbilityCalculator.getAgility(passive, ItemControl.getEquippedWeapon(passive)); value = this.getDifference(); //「再攻撃」を持っていれば再攻撃差分変更 if (SkillControl.getBattleSkill(active, passive, SkillType.ROUNDATTACK){ value = 1; } return (activeAgi - passiveAgi) = value ? 2 1; }; 「value = this.getDifference();」がツール側で設定した「再攻撃差分」の数値なので、 攻撃側が「再攻撃」のスキルを持っている場合は再攻撃差分が1に変更されるように。 calculateRecoveryItemPlus 回復アイテムの補正を計算する。 デフォルトでは回復アイテムが杖だった時に使用者の魔力を回復値に加算する処理のみ。 変更例 Calculator.calculateRecoveryItemPlus = function(unit, targetUnit, item) { var plus = 0; var itemType = item.getItemType(); if (itemType !== ItemType.RECOVERY itemType !== ItemType.ENTIRERECOVERY) { return 0; } // アイテムが杖の場合は、使用者の魔防力を加算する if (item.isWand()) { plus = ParamBonus.getMdf(unit); } return plus; }; 魔力の代わりに魔防力を回復値に追加するようにする変更。 杖使いと魔法使いをより差別化したい時に。 calculateSellPrice 店でアイテムを売却する時の値段の計算。 変更例 Calculator.calculateSellPrice = function(item) { var d; var gold = Math.floor(item.getGold() / 4); return gold; }; 耐久力で売却価格が変動する処理を廃し、売却価格を「買値の1/4の値段」で固定する。 SupportCalculator 支援効果の計算。 createTotalStatus 各種支援効果の配列を作成し、総合する部分。 変更例 var alias1 = SupportCalculator.createTotalStatus; SupportCalculator.createTotalStatus = function(unit) { var i, x, y, index, targetUnit, unitType, list, indexArray, count; var totalStatus = {}; totalStatus.powerTotal = 0; totalStatus.defenseTotal = 0; totalStatus.hitTotal = 0; totalStatus.avoidTotal = 0; totalStatus.criticalTotal = 0; totalStatus.criticalAvoidTotal = 0; if (!SkillControl.getPossessionCustomSkill(unit, noSupport )) { totalStatus = alias1.call(this, unit); } return totalStatus; } キーワード「noSupport」のカスタムスキルを所持しているユニットは一切の支援効果を受けられなくなる。 破壊できる壁などの障害物が支援スキルの影響を受けるのを無効化できる。 CompatibleCalculator 武器の有効相手(いわゆる三すくみ)の補正計算。 ExperienceCalculator 取得経験値の計算を行う。 _getExperienceFactor 取得経験値に対して補正をかける。 優先順位は「経験値上昇」スキルによる補正倍率>難易度設定による2倍効果となっており、 「経験値上昇」スキルを所持している場合は難易度設定による2倍効果は無効化される。 _getNoDamageExperience ダメージを与えられなかった時の取得経験値。 baseExpの5を基礎値とする。 ここを0に変えればダメージを与えられなければ経験値が入らないことになる。 (ただしgetExperienceのレベル差補正も修正する必要あり) _getVictoryExperience 敵を撃破できた時の取得経験値。 難易度設定による基礎経験値が使用される。 _getNormalValue ダメージは与えたが敵を撃破できなかった時の取得経験値。 baseExpの8を基礎値とする。 ここを0に変えれば敵を撃破できないと経験値が入らないことになる。 (ただしgetExperienceのレベル差補正も修正する必要あり) _getExperience 戦闘における最終的な取得経験値を割り出す。 味方ユニットと敵ユニットのレベル差、クラスランクによって修正が入る。 ExperienceControl レベルアップ時の成長処理などを行う。 ParameterControl レベルアップ時にステータスを上昇させる処理。 SymbolCalculator クラスチェンジやフュージョンなどの許可判定、イベントなどのステータス条件判定の計算を行う部分。
https://w.atwiki.jp/ssb4_kensyou/pages/115.html
注意書き ふっとばし力(KB)KB簡易版 WBKB版 ふっとび硬直 ガード硬直 ガードノックバック OP相殺 ヒットストップ 相殺 しびれ 埋められ スマッシュホールド 崖掴まり時間 つかみ時間 ピクミン投げ ウィッチタイム 参考 コメント 計算式たちのまとめ。 個別ページがある式はそちらも読むべし。 載せてほしい式があればコメントにてお知らせください。 注意書き 時間の単位は全てフレーム(F)。 フレームの計算で小数点以下が出てきた場合、計算の最後に切り捨て。ふっとばし力などは小数点以下まで計算。 ふっとばし力(KB) KB = [ 0.07 * (A + 2) * 敵%/W * KBG/100 + BKB ] * Rage * Mult. KB簡易版 WBKB版 通常の式で A=WBKB、D_o=10 としたもの。 ふっとび硬直 回避40F帯、攻撃45F帯はこの限りではない。 ガード硬直 j ジャストシールド判定。ジャスガなら0.5、それ以外なら1。 p:飛び道具判定。飛び道具なら0.66、それ以外なら1。 ガードノックバック Pushback≦1.318%の攻撃で1.2996。 ジャストシールド、飛び道具は未検証。 OP相殺 1回前に使っていればS1、2回前に使っていればS2…を加えていく。 ヒットストップ Hitlag≦30 A:ダメージ h:HS補正値 c:しゃがみ状態なら0.67、それ以外は1防御側のみにかける。攻撃側は常に1。 e:電撃属性なら1.5、それ以外は1 解析値上は「÷2.6」ではなく「×0.3846154」である。 ガードストップの計算は、 HS補正値 ≦1 → h = HS補正値 1 ≦ HS補正値 ≦1.25 → h = 1 1.25 ≦ HS補正値 → h = HS補正値×0.8 とする。 相殺 A:ダメージ ダメージは大きい方を参照する。 しびれ Paralyze≦76 A:ダメージ h:HS補正値 c:しゃがみ状態なら0.67、それ以外は1 埋められ スマッシュホールド A:元のダメージ F:ホールドフレーム0≦F≦60 崖掴まり時間 20≦Ledge≦124 F:滞空フレーム0≦F≦300 攻撃を受けるとリセット。 D:自%0≦D≦120 つかみ時間 P:蓄積% i:レバガチャスティック:8 ボタン:14.4 ピクミン投げ D:蓄積% i:レバガチャスティック:7 ボタン:12.5 ウィッチタイム 通常版 バットウィズイン発動版 30≦WT≦240 D:相手% n:WT使用回数 x:回復フレーム n,xは効果時間が完全回復したらリセット。 効果時間中、相手はスロー1/8。 参考 ゲガン氏:http //sixriver.web.fc2.com/ssb4/memo.htm KH氏:http //kuroganehammer.com/Smash4/Formulas 解析値:https //docs.google.com/spreadsheets/d/1FgOsGYfTD4nQo4jFGJ22nz5baU1xihT5lreNinY5nNQ/edit#gid=425729403 コメント 名前 コメント